Go around calling the default process filter (reducing GC churn)
authorDmitry Gutov <dmitry@gutov.dev>
Sat, 23 Sep 2023 22:19:14 +0000 (01:19 +0300)
committerDmitry Gutov <dmitry@gutov.dev>
Sat, 8 Jun 2024 23:44:19 +0000 (02:44 +0300)
commitbbc18031aff6f22a1f2b63355f18f294fbdeb797
tree821536d84a47d3abc01490038e970c1bc53f8447
parente2527dd9fd376b15d2f59ae440858b442b069577
Go around calling the default process filter (reducing GC churn)

Instead of allocating strings and passing them to the filter, pass
the char buffer to a C function implementing the same logic.

* src/process.c (read_process_output_before_insert)
(read_process_output_after_insert):
New functions, extracted from internal-default-process-filter.
(Finternal_default_process_filter): Use them.
(read_and_insert_process_output): New function.  Use them.
(read_process_output_fast): New variable.
(read_process_output): Use it to choose how to insert (bug#66020).

* etc/NEWS: Mention the change.
etc/NEWS
src/process.c